package cn.itsource.basic.util;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "json交互对象")
public class AjaxResult {
    //是否成功 true:成功  false:失败
    @ApiModelProperty(value = "是否成功 true:成功  false:失败")
    private Boolean success = true;
    //提示信息
    @ApiModelProperty(value = "提示信息")
    private String message = "OK";
    //具体的状态码 "0000":成功 1000:系统异常 1001:登录超时
    @ApiModelProperty(value = "状态码 0000:成功 1000:系统异常 1001:登录超时")
    private String code = PetConstant.SYSTEM_SUCCESS;
    //返回数据的载体
    @ApiModelProperty(value = "数据")
    private Object data;//obj response

    /**
     * 返回成功，但是不携带任何数据
     * @return
     */
    public static AjaxResult createSuccess(){
        return new AjaxResult();
    }
    /**
     * 返回成功，携带数据
     * @return
     */
    public static AjaxResult createSuccess(Object data){
        return new AjaxResult(true,"OK",PetConstant.SYSTEM_SUCCESS,data);
    }

    /**
     * 返回失败对象，自定义code就用这个
     * @return
     */
    public static AjaxResult createError(String code,String message){
        return new AjaxResult(false,message,code,null);
    }
    /**
     * 返回失败对象,如果code就是1000系统异常，就用这个
     * @return
     */
    public static AjaxResult createError(String message){
        return createError(PetConstant.SYSTEM_ERROR,message);
    }

}
